<?php
require_once '../global.inc.php';
Database::connect($HOST, $NAME, $PWD, $DB);
$table 			= "user";
// operation操作类型：add、del、list、edit
$operation = $_GET["op"];

//展示用户列表
if ($operation=="list") {
	//检查用户权限，根据权限决定所选择的数据(管理员可以查看所有用户，普通用户只能查看自己
	switch ($role) {//$role在头文件检查用户访问权限的时候已经从SESSION获取值
		case 1: $condition="1=1"; 				break;
		case 2: $condition="user_id=$userId"; 	break;//$userId在头文件检查用户访问权限的时候已经从SESSION获取值
	}
	
	$count			= Database::count($table,$condition);	
	$totalRows		= $count[0];				//数据总量
	$currentPage	= $_GET["p"];				//当前页面
	$pageInfo		= array();					//初始化页面信息
	$subpages 		= new SubPages($PAGE_SIZE, $totalRows, $currentPage);	//实例化分页
	$pageInfo 		= $subpages->getPageArray();

	
	//查询本页数据
	$userArray 		= Database::findPage($table, $pageInfo["startRow"], $pageInfo["pageSize"],$condition);
	//将分页信息和本页数据写入session
	$_SESSION["pageInfo"]	= $pageInfo;
	$_SESSION["userArray"]	= $userArray;
	echo "<script>window.location.href='../view/user/userList.php';</script>";
}

//获取某一个用户的资料
if ($operation=="get") {
	$id				= $_GET["id"];
	$idName			= "user_id";
	
	//如果该用户不是系统管理员，则只能编辑自己的资料
	if($role!=1&&$userId!=$id){
		echo "<script>alert('小样，想编辑别人的资料，没门');</script>";
		echo "<script>window.location.href='userAction.php?op=list';</script>";
		exit;
	}
	//查询用户信息
	$userInfo		= Database::findById($table, $idName, $id);
	
	//查询角色信息
	$codeRole		= Database::findAll("code_role");
	
	//将取得的用户信息写入session
	$_SESSION["userInfo"]	= $userInfo;
	$_SESSION["codeRole"]	= $codeRole;
	
	//转向处理页面
	echo "<script>window.location.href='../view/user/userEdit.php';</script>";
}

//修改某一个用户的资料
if ($operation=="edit") {
	$id				= $_GET["id"];
	$mobile			= $_POST["mobile"];
	$email			= $_POST["email"];
	$userRole		= $_POST["role"];
	$comment		= $_POST["comment"];
	//如果该用户不是系统管理员，不能编辑别人的资料
	if($role!=1&&$userId!=$id){
		echo "<script>alert('小样，想编辑别人的资料，没门');</script>";
		echo "<script>window.location.href='userAction.php?op=list';</script>";
		exit;
	}
	$sql 			= "update user set mobile = $mobile,email = '$email',comment = '$comment',info_ok = 1";//把资料齐备的标志更新为ok
	if(role == 1){
		$sql .= ",role = $userRole";
	}
	$sql .= " where user_id = $id";
	
	Database::update($sql);
	//如果是修改的自己的数据 ，更新session
	if($userId==$id){
		$_SESSION["user"]["info_ok"] 	= 1; 
		$_SESSION["user"]["mobile"] 	= $mobile;
		$_SESSION["user"]["email"] 		= $email;
		$_SESSION["user"]["comment"] 	= $comment;
	}
	//转向展示页面
	echo "<script>window.location.href='userAction.php?op=list';</script>";
}

//删除某一个用户的资料
if($operation=="del"){
	$id				= $_GET["id"];
	$pos 			= strpos($id, $userId);//获取userId在$id串中的位置
	// 使用 !== 操作符。使用 != 不能像我们期待的那样工作，
	// 因为 如果id的位置是 0。语句 (0 != false) 的结果是 false。
	//不能删除自己的资料
	if($pos!==false){
		echo "<script>alert('你不能删除自己');</script>";
		echo "<script>window.location.href='userAction.php?op=list';</script>";
		exit;
	}
	//如果该用户不是系统管理员，不能删除别人的资料
	if($role!=1){
		echo "<script>alert('小样，想删除别人的资料，没门');</script>";
		echo "<script>window.location.href='userAction.php?op=list';</script>";
		exit;
	}
	$sql			= "delete from user where user_id in ($id)";
	Database::delete($sql);
	//转向展示页面
	echo "<script>window.location.href='userAction.php?op=list';</script>";
}

//获取增加时的相关数据
if($operation=="add"){
	//如果该用户不是系统管理员，则没有权限增加用户
	if($role!=1){
		echo "<script>alert('小样，你没有权利增加操作员');</script>";
		echo "<script>window.location.href='userAction.php?op=list';</script>";
		exit;
	}

	//查询角色信息
	$codeRole		= Database::findAll("code_role");
	
	//将取得的用户信息写入session
	$_SESSION["codeRole"]	= $codeRole;
	
	//转向处理页面
	echo "<script>window.location.href='../view/user/userAdd.php';</script>";
}

//插入某一个用户的资料
if ($operation=="insert") {
	$username		= $_POST["username"];
	$email			= $_POST["email"];
	$userRole		= $_POST["role"];
	$comment		= $_POST["comment"];
	$mobile			= $_POST["mobile"];
	//如果该用户不是系统管理员，则没有权限增加用户
	if($role!=1){
		echo "<script>alert('小样，你没有权利增加操作员');</script>";
		echo "<script>window.location.href='userAction.php?op=add';</script>";
		exit;
	}
	$sql = "INSERT INTO user(user_name, password, email, role, mobile, comment, info_ok) "
		  ."VALUES ('$username','$NEWPWD','$email',$userRole,'$mobile','$comment',0)";

	Database::insert($sql);
	//转向展示页面
	echo "<script>window.location.href='userAction.php?op=list';</script>";
}
//关闭数据库
Database::close();
?>